%% 牛顿迭代法
% 定义函数f = x^3 +2*x - 6
f = @(x) x^3 +2*x - 6;
x0 = 1.5;   % 初始值
format long;    % 显示数值的格式
step = 5;   % 计算步初始化
x = NewtonIter(f,x0,step);

%% 函数定义
function x = NewtonIter(f,x0,step)
% 定义符号函数
syms x;
f_sym = f(x);
df_sym = diff(f_sym, x);    % diff()只能求导符号函数
df = matlabFunction(df_sym, 'Vars', x); % 将符号函数转化为匿名函数，方便下面使用
x = x0;
i =0;
fprintf('%-3s\t%-15s\n', 'i', 'x'); % 打印输出标题
    while (i < step)
        x = x - f(x)/df(x);
        fprintf('%-3d\t%-15.15f\n', i, x);  % 打印输出
        i = i +1;
    end
end